(shuffle): Fix the logic of setting up the cycle.
authorKenichi Handa <handa@m17n.org>
Fri, 17 Jul 2009 01:27:50 +0000 (01:27 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 17 Jul 2009 01:27:50 +0000 (01:27 +0000)
src/casetab.c

index 423251df317afb82b9aece84eebfa90c71476aae..95fca03584b010e8f3ab7d4719b15a143b4c676a 100644 (file)
@@ -229,7 +229,6 @@ shuffle (table, c, elt)
 {
   if (NATNUMP (elt))
     {
-      Lisp_Object tem = Faref (table, elt);
       int from, to;
 
       if (CONSP (c))
@@ -241,11 +240,11 @@ shuffle (table, c, elt)
        from = to = XINT (c);
 
       for (; from <= to; from++)
-       if (from != XINT (elt))
-         {
-           Faset (table, elt, make_number (from));
-           Faset (table, make_number (from), tem);
-         }
+       {
+         Lisp_Object tem = Faref (table, elt);
+         Faset (table, elt, make_number (from));
+         Faset (table, make_number (from), tem);
+       }
     }
 }
 \f